#pragma once

#include "Frame.hpp"
#include "Text.hpp"




class ENGINE_UI_API AbstractButton : public Frame
{
private:

	TextPtr   m_caption;

public:

	/**
	 * Create an abstract button.
	 */
	AbstractButton(const QString& caption, Widget* parent, Widgets::Type finalType = Widgets::AbstractButton);

	/**
	 * Destroys this AbstractButton Widget.
	 */
	virtual ~AbstractButton();



	/**
	 * Get the caption of this button.
	 */
	QString caption() const;

	/**
	 * Set the caption of this button.
	 */
	void setCaption(QString caption);

protected:

	/**
	 * Get the type of this widget.
	 */
	virtual Widgets::Type type() const;
};
///////////////////////////////////////////////////////////////////////////////////////////////

DEFINE_LOOSE_PTR(AbstractButton);
